<html>
<head><meta charset="utf-8"><title>Bidirectional control flow · project-error-handling · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/index.html">project-error-handling</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Bidirectional.20control.20flow.html">Bidirectional control flow</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="213598290"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Bidirectional%20control%20flow/near/213598290" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Bidirectional.20control.20flow.html#213598290">(Oct 16 2020 at 18:37)</a>:</h4>
<p>I found a cool paper that seemed relevant for discussing error handling! <a href="https://www.cs.cornell.edu/andru/papers/ufo/">https://www.cs.cornell.edu/andru/papers/ufo/</a></p>



<a name="213600652"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Bidirectional%20control%20flow/near/213600652" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Mario Carneiro <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Bidirectional.20control.20flow.html#213600652">(Oct 16 2020 at 18:58)</a>:</h4>
<p>Gosh, I feel like the algebraic effects literature is rediscovering call/cc all over again. At some point someone is going to point out that complex control flow is complex</p>



<a name="213601182"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Bidirectional%20control%20flow/near/213601182" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Bidirectional.20control.20flow.html#213601182">(Oct 16 2020 at 19:03)</a>:</h4>
<p>In fairness, Rust is definitely an exercise in applying 40 year old technology, so while I agree, I also can't really hold that against them. :^)</p>



<a name="213604366"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Bidirectional%20control%20flow/near/213604366" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oliver <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Bidirectional.20control.20flow.html#213604366">(Oct 16 2020 at 19:32)</a>:</h4>
<p>Coq I think could certainly be described as 'comprehensive'</p>



<a name="213630752"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Bidirectional%20control%20flow/near/213630752" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Bidirectional.20control.20flow.html#213630752">(Oct 17 2020 at 02:10)</a>:</h4>
<p>oh this is sick</p>



<a name="213630757"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Bidirectional%20control%20flow/near/213630757" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Bidirectional.20control.20flow.html#213630757">(Oct 17 2020 at 02:11)</a>:</h4>
<p>I've been wanting to read about this kinda thing for a while</p>



<a name="213630764"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Bidirectional%20control%20flow/near/213630764" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Bidirectional.20control.20flow.html#213630764">(Oct 17 2020 at 02:11)</a>:</h4>
<p>thanks for pointing it out <span class="user-mention" data-user-id="281757">@Jubilee</span></p>



<a name="213631017"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Bidirectional%20control%20flow/near/213631017" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oliver <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Bidirectional.20control.20flow.html#213631017">(Oct 17 2020 at 02:19)</a>:</h4>
<p>Oh if you're interested I usually don't like spamming theory papers but here is one<br>
that just came across my desk and has some formalism around bidirection:<br>
<a href="https://arxiv.org/abs/2010.07763">https://arxiv.org/abs/2010.07763</a></p>



<a name="213631185"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Bidirectional%20control%20flow/near/213631185" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oliver <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Bidirectional.20control.20flow.html#213631185">(Oct 17 2020 at 02:25)</a>:</h4>
<p>Seems alright to start I haven't read it all</p>



<a name="213737842"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Bidirectional%20control%20flow/near/213737842" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Bidirectional.20control.20flow.html#213737842">(Oct 19 2020 at 02:26)</a>:</h4>
<p>definitely interested</p>



<a name="214458936"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Bidirectional%20control%20flow/near/214458936" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Bidirectional.20control.20flow.html#214458936">(Oct 25 2020 at 00:46)</a>:</h4>
<p>my brain is roiling with thoughts about effect handlers enabling computational expressions a la F#.</p>



<a name="214459470"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Bidirectional%20control%20flow/near/214459470" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oliver <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Bidirectional.20control.20flow.html#214459470">(Oct 25 2020 at 00:59)</a>:</h4>
<p>isn't that what the backtrace does?</p>



<a name="214459484"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Bidirectional%20control%20flow/near/214459484" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oliver <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Bidirectional.20control.20flow.html#214459484">(Oct 25 2020 at 01:00)</a>:</h4>
<p>or rather the call to render the backtrace</p>



<a name="214460274"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Bidirectional%20control%20flow/near/214460274" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Bidirectional.20control.20flow.html#214460274">(Oct 25 2020 at 01:16)</a>:</h4>
<p>possibly.</p>



<a name="214460440"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Bidirectional%20control%20flow/near/214460440" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Bidirectional.20control.20flow.html#214460440">(Oct 25 2020 at 01:20)</a>:</h4>
<p><a href="https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/computation-expressions">https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/computation-expressions</a> the thing I'm thinking of is this, where basically you can define-your-own-syntax for "async" or "try" blocks.</p>



<a name="214460449"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Bidirectional%20control%20flow/near/214460449" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oliver <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Bidirectional.20control.20flow.html#214460449">(Oct 25 2020 at 01:20)</a>:</h4>
<p>the prototype we have now is <code>write_backtrace_to(&amp;mut dyn FormatterThing) -&gt; Result&lt;(),FormatterThing::Error&gt;</code></p>



<a name="214460479"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/Bidirectional%20control%20flow/near/214460479" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oliver <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/Bidirectional.20control.20flow.html#214460479">(Oct 25 2020 at 01:22)</a>:</h4>
<p>there is talk about shimming (my word) in some try syntax</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>